package com.dyj.goodlife.client;

import com.dtflys.forest.annotation.*;
import com.dyj.common.domain.DataAndExtraVo;
import com.dyj.common.domain.query.BaseQuery;
import com.dyj.common.interceptor.ClientTokenInterceptor;
import com.dyj.goodlife.domain.vo.*;

import java.util.List;

/**
 * 通用接口->订单查询->订单查询
 */
@BaseRequest(baseURL = "${domain}")
public interface QueryOrderClient {
    /**
     * 订单查询
     * @param accountId <p>来客商户根账户ID</p><div class="syl-image-wrapper" align="center"><span class="syl-image-fixer" style="display: inline-block;"><img src="https://p9-developer-sign.bytemaimg.com/obj/developer-inner/open_admin/1721115085176/blob?x-expires=4874715085&x-signature=nLy8mIkLjYntmgPcwUvNJpUj9VY%3D" name="" alt=""></span></div>
     * @param createOrderEndTime <p><span style="color: #1F2329;">创单结束时间（秒时间戳，创单起止时间必须同时传入）</span></p> 选填
     * @param createOrderStartTime <p><span style="color: #1F2329;">创单起始时间 （秒时间戳，创单起止时间必须同时传入）</span></p> 选填
     * @param cursor <p>根据游标滚动请求，直到返回结果数量小于请求的size或未返回search_after结束；首页传"0"，之后传返回参数中的CursorValue string数组拼接的string，如CursorValue返回参数["0","1"]，则传"0,1"；如果传入此参数，会优先使用cursor翻页，而不是page翻页</p> 选填
     * @param extOrderId <p><span style="color: #1F2329;">开发者系统中的订单号</span></p> 选填
     * @param getSecretNumber 是否需要查询配送信息 选填
     * @param openId <p>抖音内部用户的一种唯一标识</p> 选填
     * @param orderId <p><span style="color: #1F2329;">抖音生活服务订单ID</span></p><p><span style="color: #1F2329;">见抖音-团购频道-订单详情</span></p><div class="syl-image-wrapper" align="center"><span class="syl-image-fixer" style="display: inline-block;"><img src="https://p9-developer-sign.bytemaimg.com/obj/developer-inner/open_admin/1722047035158/blob?x-expires=4875647035&x-signature=dZi3GSZFeICuxjuQby%2Fv9y5SknU%3D" name="image.png" alt="" width="279" height="280"></span></div> 选填
     * @param orderStatus 订单状态 选填
     * @param pageNum <p>页数从1开始，如果使用page分页，页数*大小不能超过10000</p>
     * @param pageSize <p><span style="color: #1F2329;">页大小，取值范围1～100</span></p>
     * @param updateOrderEndTime <p><span style="color: #1F2329;">修改结束时间（秒时间戳，修改起止时间必须同时传入）</span></p> 选填
     * @param updateOrderStartTime <p><span style="color: #1F2329;">修改起始时间 （秒时间戳，修改起止时间必须同时传入）</span></p> 选填
     * @return
     */
    @Get(value = "${getOpenOrderInfo}", interceptor = ClientTokenInterceptor.class)
    DataAndExtraVo<GetOpenOrderInfoVo> getOpenOrderInfo(@Var("query") BaseQuery query,
                                                        @Header("Rpc-Transit-Life-Account") @Query("account_id") String accountId,
                                                        @Query("create_order_end_time") Long createOrderEndTime,
                                                        @Query("create_order_start_time") Long createOrderStartTime,
                                                        @Query("cursor") List<String> cursor,
                                                        @Query("ext_order_id") String extOrderId,
                                                        @Query("get_secret_number") Boolean getSecretNumber,
                                                        @Query("open_id") String openId,
                                                        @Query("order_id") String orderId,
                                                        @Query("order_status") Integer orderStatus,
                                                        @Query("page_num") Integer pageNum,
                                                        @Query("page_size") Integer pageSize,
                                                        @Query("update_order_end_time") Long updateOrderEndTime,
                                                        @Query("update_order_start_time") Long updateOrderStartTime);


}
